﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Data;

namespace CTManagerSoln
{
    class clsChungtu
    {
        internal static int Insert(string sohieuchungtu, string tenchungtu, string ngayghiso, string maloaichungtu, DateTime ngaysua, string mota, string tenfile,DBNull luufile, string nguoinhap)
        {
            int stateUpdate;
            string sql = "INSERT into tblChungTu (SoHieuChungTu,TenChungTu, NgayGhiSo,MaLoaiChungTu,NgaySua,Mota,TenFile,LuuFile,NguoiNhap) "
            +" Values(@SoHieuChungTu,@TenChungTu, @NgayGhiSo,@MaLoaiChungTu,@NgaySua,Mota,@TenFile,@LuuFile,@NguoiNhap)";

            using (OleDbConnection conn = new OleDbConnection(Commons.DBConnect.ConnectionString))
            {
                using (OleDbCommand command = new OleDbCommand(sql, conn))
                {
                    conn.Open();
                    command.Parameters.Add("@SoHieuChungTu", OleDbType.VarChar).Value = sohieuchungtu;
                    command.Parameters.Add("@TenChungTu", OleDbType.VarChar).Value = tenchungtu;
                    command.Parameters.Add("@NgayGhiSo", OleDbType.VarChar).Value = ngayghiso;
                    command.Parameters.Add("@MaLoaiChungTu", OleDbType.VarChar).Value = maloaichungtu;
                    command.Parameters.Add("@NgaySua", OleDbType.Date).Value = ngaysua;
                    command.Parameters.Add("@Mota", OleDbType.VarChar).Value = mota;
                    command.Parameters.Add("@TenFile", OleDbType.VarChar).Value = tenfile;
                    command.Parameters.Add("@LuuFile", OleDbType.VarChar).Value = "";
                    command.Parameters.Add("@NguoiNhap", OleDbType.VarChar).Value = nguoinhap;


                    command.ExecuteScalar();
                }
            }
            return 1;
        }

        internal static DataTable GetChungTu(string sohieuchungtu)
        {
            DataTable dt = new DataTable();
            string sql = string.Format("select SoHieuChungTu,TenChungTu,NgayGhiSo,MaLoaiChungTu,NgaySua,Mota,TenFile,LuuFile,NguoiNhap  from tblChungTu where SoHieuChungTu='{0}'", sohieuchungtu);

            OleDbConnection con = new OleDbConnection(Commons.DBConnect.ConnectionString);
            OleDbDataAdapter adap = new OleDbDataAdapter(sql, con);
            adap.Fill(dt);
            return dt;
        }

        internal static DataTable GetChungTu(string datefrom, string dateto, string username,string tenChungTu,string maloaiChungTu,string status)
        {
            DataTable dt = new DataTable();
            string sql="";
            if (tenChungTu!="")
            {
                if (status == "")
                {

                    sql = string.Format("SELECT tblChungTu.SoHieuChungTu, tblChungTu.TenChungTu, tblChungTu.NgayGhiSo, tblChungTu.MaLoaiChungTu, tblLoaiChungTu.TenLoaiChungTu, tblUserPhongban.UserName,'chua duyet' as isApprove "
                            + "FROM tblUserPhongban INNER JOIN (tblLoaiChungTu INNER JOIN tblChungTu ON tblLoaiChungTu.MaLoaiChungTu = tblChungTu.MaLoaiChungTu) ON tblUserPhongban.UserName = tblChungTu.NguoiNhap "
                            + " WHERE (((tblChungTu.NgayGhiSo) Between #{0}# And #{1}#)) and tblChungTu.NguoiNhap='{2}' and tblChungTu.MaLoaiChungTu='{3}' and tblChungTu.TenChungTu='{4}' && tblChungTu.isSend=false;", datefrom, dateto, username, maloaiChungTu, tenChungTu);
                }
            }
            else
            {
                sql = string.Format("SELECT tblChungTu.SoHieuChungTu, tblChungTu.TenChungTu, tblChungTu.NgayGhiSo, tblChungTu.MaLoaiChungTu, tblLoaiChungTu.TenLoaiChungTu, tblUserPhongban.UserName,'chua duyet' as isApprove "
                        + "FROM tblUserPhongban INNER JOIN (tblLoaiChungTu INNER JOIN tblChungTu ON tblLoaiChungTu.MaLoaiChungTu = tblChungTu.MaLoaiChungTu) ON tblUserPhongban.UserName = tblChungTu.NguoiNhap "
                        + " WHERE (((tblChungTu.NgayGhiSo) Between #{0}# And #{1}#)) and tblChungTu.NguoiNhap='{2}' and tblChungTu.MaLoaiChungTu='{3}'", datefrom, dateto, username, maloaiChungTu);
            }
            

            OleDbConnection con = new OleDbConnection(Commons.DBConnect.ConnectionString);
            OleDbDataAdapter adap = new OleDbDataAdapter(sql, con);
            adap.Fill(dt);
            return dt;
        }

        internal static int Update(string sohieuchungtu,bool isSend)
        {
            int stateUpdate=0;
            string sql = "Update tblChungTu SET isSend=@send where SoHieuChungTu=@sohieuchungtu;";
            //string sql = string.Format("Update tblChungTu set isSend={1} where SoHieuChungTu={0}",sohieuchungtu,isSend);

            using (OleDbConnection conn = new OleDbConnection(Commons.DBConnect.ConnectionString))
            {
                using (OleDbCommand command = new OleDbCommand(sql, conn))
                {
                    conn.Open();
                    command.Parameters.Add("@send", OleDbType.Boolean).Value = isSend;
                    command.Parameters.Add("@sohieuchungtu", OleDbType.VarChar).Value = sohieuchungtu;

                  stateUpdate= command.ExecuteNonQuery();
                }
            }
            return stateUpdate;
        }
    }
}
